package mx.utils;

extern class ObjectProxy extends flash.utils.Proxy, implements flash.utils.IExternalizable, implements mx.core.IPropertyChangeNotifier {
	var object(default,null) : Dynamic;
	var type : QName;
	var uid : String;
	function new(?item : Dynamic, ?uid : String, ?proxyDepth : Int) : Void;
	function addEventListener(type : String, listener : Dynamic, ?useCapture : Bool, ?priority : Int, ?useWeakReference : Bool) : Void;
	function dispatchEvent(event : flash.events.Event) : Bool;
	function getComplexProperty(name : Dynamic, value : Dynamic) : Dynamic;
	function hasEventListener(type : String) : Bool;
	function propertyChangeHandler(event : mx.events.PropertyChangeEvent) : Void;
	function readExternal(input : flash.utils.IDataInput) : Void;
	function removeEventListener(type : String, listener : Dynamic, ?useCapture : Bool) : Void;
	function willTrigger(type : String) : Bool;
	function writeExternal(output : flash.utils.IDataOutput) : Void;
	private var dispatcher : flash.events.EventDispatcher;
	private var notifiers : Dynamic;
	private var propertyList : Array<Dynamic>;
	private var proxyClass : Class<Dynamic>;
	private function setupPropertyList() : Void;
}
